﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SRD.Model.SRD.DTO;
using SRD.Model.SRD.Util;
using System.Data.SqlClient;
using System.Data;
using System.Collections;
using System.Web.UI.WebControls;
using System.Configuration;
namespace SRD.Model.SRD.DAO
{
    public class CargoDAO
    {
        public CargoDAO()
        {
            Conexao.getConexao().Close();            
        }
        public String inserirCargo(CargoDTO cargo)
        {
            SqlCommand cmd = new SqlCommand("insert into CARGO(NM_CARGO, ATIVO) values (@nomeCargo, @ativo);", Conexao.getConexao());
            try
            {

                Conexao.getConexao().Open();


                cmd.Parameters.Add("@nomeCargo", SqlDbType.NVarChar).Value = cargo.NomeCargo;
                cmd.Parameters.Add("@ativo", SqlDbType.NVarChar).Value = cargo.Ativo;
                cmd.ExecuteNonQuery();

                return "Inclusão realizada com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro na inclusão: " + o.Message;
            }
            finally
            {
                Conexao.getConexao().Close();
            }
        }

        public DataSet getCargo(CargoDTO cargo)
        {
                       
            try
            {
                Conexao.getConexao().Open();
                SqlCommand cmd = new SqlCommand("Select * from Cargo where cargo_id = @cargoId", Conexao.getConexao());
                cmd.Parameters.Add("@cargoId", SqlDbType.Int).Value = cargo.CargoId;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet DT = new DataSet();
                da.Fill(DT,"CARGO");
                DataSet retorno = DT;
                return retorno;
            }
            finally
            {
                Conexao.getConexao().Close();
            }


        }

        public DataSet getCargos()
        {

            try
            {
                Conexao.getConexao().Open();
                SqlCommand cmd = new SqlCommand("Select * from Cargo order by NM_CARGO", Conexao.getConexao());
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet DT = new DataSet();
                da.Fill(DT, "CARGO");
                DataSet retorno = DT;
                return retorno;
            }
            finally
            {
                Conexao.getConexao().Close();
            }


        }

        public String alterarCargo(CargoDTO cargo)
        {
            SqlCommand cmd = new SqlCommand("UPDATE CARGO SET NM_CARGO = @nome, ATIVO = @ativo WHERE (CARGO_ID = @cargoId)", Conexao.getConexao());

            try
            {
                Conexao.getConexao().Open();
                cmd.Parameters.Add("@nome", SqlDbType.NVarChar).Value = cargo.NomeCargo;
                cmd.Parameters.Add("@ativo", SqlDbType.Char).Value = cargo.Ativo;
                cmd.Parameters.Add("@cargoId", SqlDbType.NVarChar).Value = cargo.CargoId;
                cmd.ExecuteNonQuery();
                return "Atualização realizada com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro na atualização: " + o.Message;
            }
            finally
            {
                Conexao.getConexao().Close();
            }
        }

        public String excluirCargo(CargoDTO cargo)
        {
            SqlCommand cmd = new SqlCommand("DELETE from CARGO WHERE CARGO_ID = @cargoId", Conexao.getConexao());

            try
            {
                Conexao.getConexao().Open();
                cmd.Parameters.Add("@cargoId", SqlDbType.Int).Value = cargo.CargoId;
                cmd.ExecuteNonQuery();
                Conexao.getConexao().Close();
                return "Cargo excluído com sucesso!";
            }
            catch (Exception o)
            {
                return "Houve erro ao excluir: " + o.Message;
            }           
        }

        public DataSet getCargos(String nomeCargo)
        {
            try
            {
                Conexao.getConexao().Open();
                SqlCommand cmd = new SqlCommand("Select * from Cargo where NM_CARGO LIKE '%' + @NM_CARGO + '%' order by NM_CARGO", Conexao.getConexao());
                cmd.Parameters.Add("@NM_CARGO", SqlDbType.NVarChar).Value = nomeCargo;
                SqlDataAdapter da = new SqlDataAdapter(cmd);
                DataSet DT = new DataSet();
                da.Fill(DT, "CARGO");
                DataSet retorno = DT;
                return retorno;
            }
            finally
            {
                Conexao.getConexao().Close();
            }
        }
    }
}